home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / Everything / Dispatcher.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-29  |  13.8 KB  |  565 lines  |  [TEXT/CWIE]

  1. /* Dispatcher.c */
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11.  
  12. #include "EverythingApp.h"
  13. #include "EverythingDoc.h"
  14. #include "EverythingEngine.h"
  15. #include "Buttons.h"
  16. #include "Checkboxes.h"
  17. #include "Radios.h"
  18. #include "EditText.h"
  19. #include "Stuff.h"
  20. #include "Bars.h"
  21. #include "AboutDialog.h"
  22. #include "ModalButtons.h"
  23. #include "ModalCheckboxes.h"
  24. #include "ModalRadios.h"
  25. #include "ModalText.h"
  26. #include "ModalStuff.h"
  27. #include "ModalBars.h"
  28. #include "ModelessButtons.h"
  29. #include "ModelessCheckboxes.h"
  30. #include "ModelessRadios.h"
  31. #include "ModelessText.h"
  32. #include "ModelessStuff.h"
  33. #include "ModelessBars.h"
  34.  
  35. #include "Globals.h"
  36. #include "Dispatcher.h"
  37.  
  38. /*----------*/
  39. void DoIdle (void)
  40. {
  41. }
  42.  
  43. //----------
  44. // windows
  45.  
  46. //----------
  47. void    Close (
  48.     AMWindow*        window)
  49. {
  50.     switch (GetClassID (window)) {
  51.     case classButtons:
  52.             Buttons_Close ((Buttons*) window);
  53.         break;
  54.     case classCheckboxes:
  55.             Checkboxes_Close ((Checkboxes*) window);
  56.         break;
  57.     case classRadios:
  58.             Radios_Close ((Radios*) window);
  59.         break;
  60.     case classEditText:
  61.             EditText_Close ((EditText*) window);
  62.         break;
  63.     case classStuff:
  64.             Stuff_Close ((Stuff*) window);
  65.         break;
  66.     case classBars:
  67.             Bars_Close ((Bars*) window);
  68.         break;
  69.     } // switch
  70. }
  71.  
  72. //----------
  73. void    DoTrack (
  74.     AMWindow*        window,
  75.     ControlHandle    whichControl,
  76.     short             whichPart,
  77.     Point            where)
  78. {
  79.     switch (GetClassID (window)) {
  80.     case classButtons:
  81.             Buttons_Track ((Buttons*) window, whichControl, whichPart, where);
  82.         break;
  83.     case classCheckboxes:
  84.             Checkboxes_Track ((Checkboxes*) window, whichControl, whichPart, where);
  85.         break;
  86.     case classRadios:
  87.             Radios_Track ((Radios*) window, whichControl, whichPart, where);
  88.         break;
  89.     case classEditText:
  90.             EditText_Track ((EditText*) window, whichControl, whichPart, where);
  91.         break;
  92.     case classStuff:
  93.             Stuff_Track ((Stuff*) window, whichControl, whichPart, where);
  94.         break;
  95.     case classBars:
  96.             Bars_Track ((Bars*) window, whichControl, whichPart, where);
  97.         break;
  98.     } // switch
  99. }
  100.  
  101. //----------
  102. void    MouseIn (
  103.     AMWindow*        window,
  104.     Point            where,
  105.     short            modifiers)
  106. {
  107.     switch (GetClassID (window)) {
  108.     case classButtons:
  109.             Buttons_MouseIn ((Buttons*) window, where, modifiers);
  110.         break;
  111.     case classCheckboxes:
  112.             Checkboxes_MouseIn ((Checkboxes*) window, where, modifiers);
  113.         break;
  114.     case classRadios:
  115.             Radios_MouseIn ((Radios*) window, where, modifiers);
  116.         break;
  117.     case classEditText:
  118.             EditText_MouseIn ((EditText*) window, where, modifiers);
  119.         break;
  120.     case classStuff:
  121.             Stuff_MouseIn ((Stuff*) window, where, modifiers);
  122.         break;
  123.     case classBars:
  124.             Bars_MouseIn ((Bars*) window, where, modifiers);
  125.         break;
  126.     } // switch
  127. }
  128.  
  129. //----------
  130. void    TypeIn (
  131.     AMWindow*        window,
  132.     char            ch)
  133. {
  134.     switch (GetClassID (window)) {
  135.     case classButtons:
  136.             Buttons_TypeIn ((Buttons*) window, ch);
  137.         break;
  138.     case classCheckboxes:
  139.             Checkboxes_TypeIn ((Checkboxes*) window, ch);
  140.         break;
  141.     case classRadios:
  142.             Radios_TypeIn ((Radios*) window, ch);
  143.         break;
  144.     case classEditText:
  145.             EditText_TypeIn ((EditText*) window, ch);
  146.         break;
  147.     case classStuff:
  148.             Stuff_TypeIn ((Stuff*) window, ch);
  149.         break;
  150.     case classBars:
  151.             Bars_TypeIn ((Bars*) window, ch);
  152.         break;
  153.     } // switch
  154. }
  155.  
  156. //----------
  157. void    Resize (
  158.     AMWindow*        window)
  159. {
  160.     switch (GetClassID (window)) {
  161.     case classButtons:
  162.             Buttons_Resize ((Buttons*) window);
  163.         break;
  164.     case classCheckboxes:
  165.             Checkboxes_Resize ((Checkboxes*) window);
  166.         break;
  167.     case classRadios:
  168.             Radios_Resize ((Radios*) window);
  169.         break;
  170.     case classEditText:
  171.             EditText_Resize ((EditText*) window);
  172.         break;
  173.     case classStuff:
  174.             Stuff_Resize ((Stuff*) window);
  175.         break;
  176.     case classBars:
  177.             Bars_Resize ((Bars*) window);
  178.         break;
  179.     } // switch
  180. }
  181.  
  182. //----------
  183. void    Scroll (
  184.     AMWindow*        window,
  185.     short            newValue,
  186.     short            oldValue)
  187. {
  188.     switch (GetClassID (window)) {
  189.     case classButtons:
  190.             Buttons_Scroll ((Buttons*) window, newValue, oldValue);
  191.         break;
  192.     case classCheckboxes:
  193.             Checkboxes_Scroll ((Checkboxes*) window, newValue, oldValue);
  194.         break;
  195.     case classRadios:
  196.             Radios_Scroll ((Radios*) window, newValue, oldValue);
  197.         break;
  198.     case classEditText:
  199.             EditText_Scroll ((EditText*) window, newValue, oldValue);
  200.         break;
  201.     case classStuff:
  202.             Stuff_Scroll ((Stuff*) window, newValue, oldValue);
  203.         break;
  204.     case classBars:
  205.             Bars_Scroll ((Bars*) window, newValue, oldValue);
  206.         break;
  207.     } // switch
  208. }
  209.  
  210. //----------
  211. Boolean    DoCommand (
  212.     AMWindow*        window,
  213.     long            inCommand)
  214. {
  215.     switch (GetClassID (window)) {
  216.     case classButtons:
  217.             return Buttons_DoCommand ((Buttons*) window, inCommand);
  218.         break;
  219.     case classCheckboxes:
  220.             return Checkboxes_DoCommand ((Checkboxes*) window, inCommand);
  221.         break;
  222.     case classRadios:
  223.             return Radios_DoCommand ((Radios*) window, inCommand);
  224.         break;
  225.     case classEditText:
  226.             return EditText_DoCommand ((EditText*) window, inCommand);
  227.         break;
  228.     case classStuff:
  229.             return Stuff_DoCommand ((Stuff*) window, inCommand);
  230.         break;
  231.     case classBars:
  232.             return Bars_DoCommand ((Bars*) window, inCommand);
  233.         break;
  234.     } // switch
  235.     return false;
  236. }
  237.  
  238. //----------
  239. void    ExitCurField (
  240.     AMWindow*        window)
  241. {
  242.     switch (GetClassID (window)) {
  243.     case classButtons:
  244.             Buttons_ExitCurField ((Buttons*) window);
  245.         break;
  246.     case classCheckboxes:
  247.             Checkboxes_ExitCurField ((Checkboxes*) window);
  248.         break;
  249.     case classRadios:
  250.             Radios_ExitCurField ((Radios*) window);
  251.         break;
  252.     case classEditText:
  253.             EditText_ExitCurField ((EditText*) window);
  254.         break;
  255.     case classStuff:
  256.             Stuff_ExitCurField ((Stuff*) window);
  257.         break;
  258.     case classBars:
  259.             Bars_ExitCurField ((Bars*) window);
  260.         break;
  261.     } // switch
  262. }
  263.  
  264. //----------
  265. void    DataChanged (
  266.     AMResponder*    responder,
  267.     long            inDataID)
  268. {
  269.     switch (GetClassID (responder)) {
  270.     case classButtons:
  271.             Buttons_DataChanged ((Buttons*) responder, inDataID);
  272.         break;
  273.     case classCheckboxes:
  274.             Checkboxes_DataChanged ((Checkboxes*) responder, inDataID);
  275.         break;
  276.     case classRadios:
  277.             Radios_DataChanged ((Radios*) responder, inDataID);
  278.         break;
  279.     case classEditText:
  280.             EditText_DataChanged ((EditText*) responder, inDataID);
  281.         break;
  282.     case classStuff:
  283.             Stuff_DataChanged ((Stuff*) responder, inDataID);
  284.         break;
  285.     case classBars:
  286.             Bars_DataChanged ((Bars*) responder, inDataID);
  287.         break;
  288.     case classAboutDialog:
  289.             AboutDialog_DataChanged ((AboutDialog*) responder, inDataID);
  290.         break;
  291.     case classModalButtons:
  292.             ModalButtons_DataChanged ((ModalButtons*) responder, inDataID);
  293.         break;
  294.     case classModalCheckboxes:
  295.             ModalCheckboxes_DataChanged ((ModalCheckboxes*) responder, inDataID);
  296.         break;
  297.     case classModalRadios:
  298.             ModalRadios_DataChanged ((ModalRadios*) responder, inDataID);
  299.         break;
  300.     case classModalText:
  301.             ModalText_DataChanged ((ModalText*) responder, inDataID);
  302.         break;
  303.     case classModalStuff:
  304.             ModalStuff_DataChanged ((ModalStuff*) responder, inDataID);
  305.         break;
  306.     case classModalBars:
  307.             ModalBars_DataChanged ((ModalBars*) responder, inDataID);
  308.         break;
  309.     case classModelessButtons:
  310.             ModelessButtons_DataChanged ((ModelessButtons*) responder, inDataID);
  311.         break;
  312.     case classModelessCheckboxes:
  313.             ModelessCheckboxes_DataChanged ((ModelessCheckboxes*) responder, inDataID);
  314.         break;
  315.     case classModelessRadios:
  316.             ModelessRadios_DataChanged ((ModelessRadios*) responder, inDataID);
  317.         break;
  318.     case classModelessText:
  319.             ModelessText_DataChanged ((ModelessText*) responder, inDataID);
  320.         break;
  321.     case classModelessStuff:
  322.             ModelessStuff_DataChanged ((ModelessStuff*) responder, inDataID);
  323.         break;
  324.     case classModelessBars:
  325.             ModelessBars_DataChanged ((ModelessBars*) responder, inDataID);
  326.         break;
  327.     } // switch
  328. }
  329.  
  330. //----------
  331. // dialogs
  332.  
  333. //----------
  334. void    FinishMake (
  335.     AMDialog*        dialog)
  336. {
  337.     switch (GetClassID (dialog)) {
  338.     case classAboutDialog:
  339.             AboutDialog_FinishMake ((AboutDialog*) dialog);
  340.         break;
  341.     case classModalButtons:
  342.             ModalButtons_FinishMake ((ModalButtons*) dialog);
  343.         break;
  344.     case classModalCheckboxes:
  345.             ModalCheckboxes_FinishMake ((ModalCheckboxes*) dialog);
  346.         break;
  347.     case classModalRadios:
  348.             ModalRadios_FinishMake ((ModalRadios*) dialog);
  349.         break;
  350.     case classModalText:
  351.             ModalText_FinishMake ((ModalText*) dialog);
  352.         break;
  353.     case classModalStuff:
  354.             ModalStuff_FinishMake ((ModalStuff*) dialog);
  355.         break;
  356.     case classModalBars:
  357.             ModalBars_FinishMake ((ModalBars*) dialog);
  358.         break;
  359.     case classModelessButtons:
  360.             ModelessButtons_FinishMake ((ModelessButtons*) dialog);
  361.         break;
  362.     case classModelessCheckboxes:
  363.             ModelessCheckboxes_FinishMake ((ModelessCheckboxes*) dialog);
  364.         break;
  365.     case classModelessRadios:
  366.             ModelessRadios_FinishMake ((ModelessRadios*) dialog);
  367.         break;
  368.     case classModelessText:
  369.             ModelessText_FinishMake ((ModelessText*) dialog);
  370.         break;
  371.     case classModelessStuff:
  372.             ModelessStuff_FinishMake ((ModelessStuff*) dialog);
  373.         break;
  374.     case classModelessBars:
  375.             ModelessBars_FinishMake ((ModelessBars*) dialog);
  376.         break;
  377.     } // switch
  378. }
  379.  
  380. //----------
  381. void    ConnectToData (
  382.     AMDialog*        dialog,
  383.     AMSignaler*        inData)
  384. {
  385.     switch (GetClassID (dialog)) {
  386.     case classAboutDialog:
  387.             AboutDialog_ConnectToData ((AboutDialog*) dialog, inData);
  388.         break;
  389.     case classModalButtons:
  390.             ModalButtons_ConnectToData ((ModalButtons*) dialog, inData);
  391.         break;
  392.     case classModalCheckboxes:
  393.             ModalCheckboxes_ConnectToData ((ModalCheckboxes*) dialog, inData);
  394.         break;
  395.     case classModalRadios:
  396.             ModalRadios_ConnectToData ((ModalRadios*) dialog, inData);
  397.         break;
  398.     case classModalText:
  399.             ModalText_ConnectToData ((ModalText*) dialog, inData);
  400.         break;
  401.     case classModalStuff:
  402.             ModalStuff_ConnectToData ((ModalStuff*) dialog, inData);
  403.         break;
  404.     case classModalBars:
  405.             ModalBars_ConnectToData ((ModalBars*) dialog, inData);
  406.         break;
  407.     case classModelessButtons:
  408.             ModelessButtons_ConnectToData ((ModelessButtons*) dialog, inData);
  409.         break;
  410.     case classModelessCheckboxes:
  411.             ModelessCheckboxes_ConnectToData ((ModelessCheckboxes*) dialog, inData);
  412.         break;
  413.     case classModelessRadios:
  414.             ModelessRadios_ConnectToData ((ModelessRadios*) dialog, inData);
  415.         break;
  416.     case classModelessText:
  417.             ModelessText_ConnectToData ((ModelessText*) dialog, inData);
  418.         break;
  419.     case classModelessStuff:
  420.             ModelessStuff_ConnectToData ((ModelessStuff*) dialog, inData);
  421.         break;
  422.     case classModelessBars:
  423.             ModelessBars_ConnectToData ((ModelessBars*) dialog, inData);
  424.         break;
  425.     } // switch
  426. }
  427.  
  428. //----------
  429. void    DoItem (
  430.     AMDialog*        dialog,
  431.     SInt16            inItemHit)
  432. {
  433.     switch (GetClassID (dialog)) {
  434.     case classAboutDialog:
  435.             AboutDialog_DoItem ((AboutDialog*) dialog, inItemHit);
  436.         break;
  437.     case classModalButtons:
  438.             ModalButtons_DoItem ((ModalButtons*) dialog, inItemHit);
  439.         break;
  440.     case classModalCheckboxes:
  441.             ModalCheckboxes_DoItem ((ModalCheckboxes*) dialog, inItemHit);
  442.         break;
  443.     case classModalRadios:
  444.             ModalRadios_DoItem ((ModalRadios*) dialog, inItemHit);
  445.         break;
  446.     case classModalText:
  447.             ModalText_DoItem ((ModalText*) dialog, inItemHit);
  448.         break;
  449.     case classModalStuff:
  450.             ModalStuff_DoItem ((ModalStuff*) dialog, inItemHit);
  451.         break;
  452.     case classModalBars:
  453.             ModalBars_DoItem ((ModalBars*) dialog, inItemHit);
  454.         break;
  455.     case classModelessButtons:
  456.             ModelessButtons_DoItem ((ModelessButtons*) dialog, inItemHit);
  457.         break;
  458.     case classModelessCheckboxes:
  459.             ModelessCheckboxes_DoItem ((ModelessCheckboxes*) dialog, inItemHit);
  460.         break;
  461.     case classModelessRadios:
  462.             ModelessRadios_DoItem ((ModelessRadios*) dialog, inItemHit);
  463.         break;
  464.     case classModelessText:
  465.             ModelessText_DoItem ((ModelessText*) dialog, inItemHit);
  466.         break;
  467.     case classModelessStuff:
  468.             ModelessStuff_DoItem ((ModelessStuff*) dialog, inItemHit);
  469.         break;
  470.     case classModelessBars:
  471.             ModelessBars_DoItem ((ModelessBars*) dialog, inItemHit);
  472.         break;
  473.     } // switch
  474. }
  475.  
  476. //----------
  477. Boolean        Filter (
  478.     AMDialog*            dialog,
  479.     EventRecord            *ioEvent,
  480.     DialogItemIndex        *outItemHit)
  481. {
  482.     switch (GetClassID (dialog)) {
  483.     case classAboutDialog:
  484.             return AboutDialog_Filter ((AboutDialog*) dialog, ioEvent, outItemHit);
  485.         break;
  486.     case classModalButtons:
  487.             return ModalButtons_Filter ((ModalButtons*) dialog, ioEvent, outItemHit);
  488.         break;
  489.     case classModalCheckboxes:
  490.             return ModalCheckboxes_Filter ((ModalCheckboxes*) dialog, ioEvent, outItemHit);
  491.         break;
  492.     case classModalRadios:
  493.             return ModalRadios_Filter ((ModalRadios*) dialog, ioEvent, outItemHit);
  494.         break;
  495.     case classModalText:
  496.             return ModalText_Filter ((ModalText*) dialog, ioEvent, outItemHit);
  497.         break;
  498.     case classModalStuff:
  499.             return ModalStuff_Filter ((ModalStuff*) dialog, ioEvent, outItemHit);
  500.         break;
  501.     case classModalBars:
  502.             return ModalBars_Filter ((ModalBars*) dialog, ioEvent, outItemHit);
  503.         break;
  504.     case classModelessButtons:
  505.             return ModelessButtons_Filter ((ModelessButtons*) dialog, ioEvent, outItemHit);
  506.         break;
  507.     case classModelessCheckboxes:
  508.             return ModelessCheckboxes_Filter ((ModelessCheckboxes*) dialog, ioEvent, outItemHit);
  509.         break;
  510.     case classModelessRadios:
  511.             return ModelessRadios_Filter ((ModelessRadios*) dialog, ioEvent, outItemHit);
  512.         break;
  513.     case classModelessText:
  514.             return ModelessText_Filter ((ModelessText*) dialog, ioEvent, outItemHit);
  515.         break;
  516.     case classModelessStuff:
  517.             return ModelessStuff_Filter ((ModelessStuff*) dialog, ioEvent, outItemHit);
  518.         break;
  519.     case classModelessBars:
  520.             return ModelessBars_Filter ((ModelessBars*) dialog, ioEvent, outItemHit);
  521.         break;
  522.     } // switch
  523.     return false;    // not filtered => Dialog Manager takes it
  524. }
  525.  
  526. //----------
  527. // modeless dialogs
  528.  
  529. /*----------*/
  530. void    InitModelessDialogs (void)
  531. {
  532.     ModelessButtons_Create ();
  533.     ModelessCheckboxes_Create ();
  534.     ModelessRadios_Create ();
  535.     ModelessText_Create ();
  536.     ModelessStuff_Create ();
  537.     ModelessBars_Create ();
  538.  
  539. }
  540.  
  541. /*----------*/
  542. void    CloseModelessDialog (
  543.     DialogPtr        whichDialog)
  544. {
  545.     if (whichDialog == ModelessButtonsDialog) {
  546.         ModelessButtons_Close ();
  547.     }
  548.     if (whichDialog == ModelessCheckboxesDialog) {
  549.         ModelessCheckboxes_Close ();
  550.     }
  551.     if (whichDialog == ModelessRadiosDialog) {
  552.         ModelessRadios_Close ();
  553.     }
  554.     if (whichDialog == ModelessTextDialog) {
  555.         ModelessText_Close ();
  556.     }
  557.     if (whichDialog == ModelessStuffDialog) {
  558.         ModelessStuff_Close ();
  559.     }
  560.     if (whichDialog == ModelessBarsDialog) {
  561.         ModelessBars_Close ();
  562.     }
  563.  
  564. }
  565.